// 面向对象封装ajax
function Ajax(opt, callback) {
    // get的处理
    if (
      opt.method == "get" &&
      Object.prototype.toString.call(opt.data) == "[object Object]"
    ) {
      opt.url += "?";
      for (var i in opt.data) {
        opt.url += i + "=" + opt.data[i] + "&";
      }
      opt.url = opt.url.substring(0, opt.url.length - 1);
    }
    // 1. 创建一个请求对象
    var xhr = new XMLHttpRequest();
    // 2. 建立连接
    xhr.open(opt.method, opt.url);
    // 3. 如果是post
    if (opt.method == "post") {
      xhr.setRequestHeader("Content-Type", "application/json");
      if (opt.data) {
        xhr.send(JSON.stringify(opt.data));
      } else {
        xhr.send();
      }
    } else {
      xhr.send();
    }
    // 4. 监听响应
    xhr.responseType = "json";
    xhr.onreadystatechange = function () {
      // 5. 获取数据
      if (
        (xhr.readyState === 4 && xhr.status === 200) ||
        (xhr.readyState === 4 && xhr.status === 304)
      ) {
        callback && callback(xhr.response);
      }
    };
  }
  